package com.eryos.android.cigarettecounter.io;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import android.util.Log;

/**
 * Project :  CigaretteCounter
 * Author :   Olivier Combe 
 * URL :      http://eryos.fr/CigaretteCounter/
 *
 * Copyright (C) 2011 - Olivier Combe 
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 *
 */

public class DataImporter extends IOStream {
	
	private InputStream is;
	private InputStreamReader isr;
	private BufferedReader br;
	
	public DataImporter( String _filename){
		Log.d("CigaretteCounter", getClass().getSimpleName()+" : new DataImporter()");

		EXTERN_NAME = _filename;
	}
	
	public boolean openStream() throws IOException{
		Log.d("CigaretteCounter", getClass().getSimpleName()+" : openStream");
		if ( this.openStream(TYPE.READ) ){

			is = new FileInputStream(outputFile);
			isr = new InputStreamReader(is);
			br = new BufferedReader(isr);

			return true;
		}
		else
			return false;
	}
	
	/**
	* Read data from file in /sdcard/downloads directory
	*/
	public ArrayList<String> readDataFromExternalFile() throws IOException{ 
		Log.d("CigaretteCounter", getClass().getSimpleName()+" : readDataFromExternalFile");
	
		ArrayList<String> data = new ArrayList<String>();

		String line = br.readLine();

		while ( line != null ){
			data.add(line);
			line = br.readLine();
		}
				
		return data;
	}
	
	public void closeStream() throws IOException{
		Log.d("CigaretteCounter", getClass().getSimpleName()+" : closeStream");
		
		is.close();
		isr.close();
		br.close();
	}

}
